package ar.fiuba.tp7552.buildadmin.webactions.gastos;

import ar.fiuba.tp7552.buildadmin.model.BusinessException;
import ar.fiuba.tp7552.buildadmin.model.gastos.TipoGasto;
import ar.fiuba.tp7552.buildadmin.service.TipoGastoService;
import ar.fiuba.tp7552.buildadmin.webactions.BaseAction;

import com.opensymphony.xwork2.Preparable;

public class TipoGastoAction extends BaseAction implements Preparable {
	
	private TipoGastoService tgastoService;
	private TipoGasto tipoGasto = new TipoGasto();
	// ~~ Constructor ====================================================
	
	public TipoGastoAction(TipoGastoService tgastoService) {
		super();
		this.tgastoService = tgastoService;
	}
	
	// ~~ Actions ========================================================
	
	@Override
	public void prepare() {
		Long id = tipoGasto.getId();
		if ( id != null ) {
			tipoGasto = tgastoService.get(id);
		}
	}
	
	public String  load() {
		return BaseAction.SUCCESS;
	}
	
	public String  delete() {
		tgastoService.delete(tipoGasto);
		return BaseAction.SUCCESS;
	}
	
	public String save() {
		try {
			if (tipoGasto.isNew()) {
				tgastoService.create(tipoGasto);
			} else {
				tgastoService.update(tipoGasto);
			}
			return BaseAction.SUCCESS;
		} catch (BusinessException e) {
			addActionError(e.getMessage());
			return BaseAction.INPUT;
		}
	}

	//~~ getters y setters ===========================================================
	public TipoGasto getTipoGasto() {
		return tipoGasto;
	}

	public void setTipoGasto(TipoGasto tipoGasto) {
		this.tipoGasto = tipoGasto;
	}

}
